package bo;

import java.util.List;

import javax.persistence.Entity;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import org.hibernate.annotations.Cascade;

import config.Constants;

@Entity
@Table(name="producto")
public class Producto extends PersistentObject {

	private static final long serialVersionUID = 1L;

	private String codigo;
	
	private String tipo;
	
	private String marca;
	
	private String modelo;
	
	private String medida;
	
	private String descripcion;
	
	private String proveedor;
	
	private Double precioB2B;
	
	private Double precioLista;
	
	@OneToMany
	@Cascade({org.hibernate.annotations.CascadeType.ALL})
	private List<Stock> stocks;
	
	public String getCodigo() {
		return codigo;
	}

	public void setCodigo(String codigo) {
		this.codigo = codigo;
	}

	public String getTipo() {
		return tipo;
	}

	public void setTipo(String tipo) {
		this.tipo = tipo;
	}

	public String getMarca() {
		return marca;
	}

	public void setMarca(String marca) {
		this.marca = marca;
	}

	public String getModelo() {
		return modelo;
	}

	public void setModelo(String modelo) {
		this.modelo = modelo;
	}

	public String getMedida() {
		return medida;
	}

	public void setMedida(String medida) {
		this.medida = medida;
	}

	public String getDescripcion() {
		return descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	public String getProveedor() {
		return proveedor;
	}

	public void setProveedor(String proveedor) {
		this.proveedor = proveedor;
	}

	public Double getPrecioB2B() {
		return precioB2B;
	}

	public void setPrecioB2B(Double precioB2B) {
		this.precioB2B = precioB2B;
	}

	public Double getPrecioLista() {
		return precioLista;
	}

	public void setPrecioLista(Double precioLista) {
		this.precioLista = precioLista;
	}

	public Stock getStock() {
		
		// Obtiene el stock del local donde esta instalada la aplicacion
		if (stocks != null) {
			for (Stock stock : stocks) {
				if (Constants.APP_LOCATION.equalsIgnoreCase(stock.getAlmacen())) {
					return stock;
				}
			}
		}
		return stocks.get(0);
	}
	
	public List<Stock> getStocks() {
		return stocks;
	}

	public void setStocks(List<Stock> stocks) {
		this.stocks = stocks;
	}


}
